﻿# -*- coding: utf-8 -*-

'''
1、因为没有提到读取文件，先不读取只写入
2、增加游戏循环，可以反复游戏，初始化判断条件因为输入条件是变化的，可以当做判断条件
3、增加姓名、游戏总次数、总轮数和最小轮数（因为是最小，初始化参数不能过小）
4、记录格式：姓名、总次数、总轮数、最小轮数
'''

# 调用随机模块
from random import randint

# 创建列表记录数据
lst = [0, 0, 0]
xing_ming = input('请输入游戏名。\n')
ans, ci_shu, lun_shu, zui_xiao = 'y', 0, 0, 100
while ans == 'y':
    # 随机1到100的数字
    com = randint(1, 100)
    # 开始循环猜数字，少用break，给结果赋值False，x初始化本次轮数
    jie_guo, x = False, 0
    while jie_guo == False:
        # 每次轮数加1
        ans, x = int(input('来猜一个1到100的数字游戏吧。\n')), x + 1
        if ans < com:
            print('你猜的数字小了！')
        elif ans > com:
            print('你猜的数字大了！')
        else:
            print(f'恭喜您猜对啦！！！一共猜了{x}轮。')
            jie_guo = True
    # 游戏次数加1, 总轮数加上本次轮数
    ci_shu += 1
    lun_shu += x
    # 对比最小轮数
    if zui_xiao > x:
        zui_xiao = x
    print(f'你一共玩了{ci_shu}次，最少{zui_xiao}轮猜出答案，平均{(lun_shu/ci_shu):.2f}轮猜出答案。')
    ans = input('输入y继续游戏，其它退出。\n')

# 整理数据（注意：列表在每个需要换行的位置一定要加\n，
# 把数据写入列表
lst[0], lst[1], lst[2] = ci_shu, lun_shu, zui_xiao
lst.insert(0, xing_ming)
print(f'lst===={lst}')
# 列表全部转换成字符串并加入空格
lst1 = []
for i in lst:
    i = f'{i} '
    lst1.append(i)
lst1.append('\n')
print(f'lst1==={lst1}')
# 写入文件，为方便写入多个数据，用列表来存储数据
with open('game_one_user.txt', 'w', encoding='utf8') as f:
    f.writelines(lst1)